import book.BookList;
import user.AdminUser;
import user.NormalUser;
import user.User;

import java.util.Scanner;

//主类
public class Main {
   public static User login(){
       Scanner scanner = new Scanner(System.in);
       System.out.println("请输入名字:");
       String name = scanner.nextLine();
       System.out.println("请输入你的身份：1.管理员  2.普通用户");
       int choice = scanner.nextInt();
       if(choice == 1){
//           AdminUser adminUser = new AdminUser(name);
           return new AdminUser(name);
       }else{
            return new NormalUser(name);
       }
   }

    public static void main(String[] args) {
        BookList bookList = new BookList();
        User user = login();//发生了向上转型
        while(true){
            int chioce = user.menu();//调用的是子类的菜单
            /**
             * 如果发生了向上转型，那么通过父类引用，来调用方法
             * 或者成员变量的时候，只能调用父类自己的成员变量或者方法！！
             * 通过向上转型，抽象类父类引用非抽象类子类，就能够调用抽象类父类的方法
             * 需要注意的是，如果子类重写了父类的方法，
             * 则调用父类的方法，实际调用的是子类的方法
              */
//        根据菜单的选项，来调用合适的方法
            user.doOperation(chioce,bookList);
        }


    }
}
